<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{padding:10px;margin:10px;border:solid 1px black;}
    </style>
</head>
<body>
    <div class="app">
        <h1>这是 - {{title}}</h1>

        <Global-com></Global-com>

        <Child1></Child1>
    </div>
</body>
<template id="globalTemp">
    <div>
        <h2>这是 - {{title}}</h2>
        <p>1. 创建组件模板：在template选项中以字符形式存在；使用template内置组件，通过id名精准绑定</p>
        <p>2. 在vue实例身上有component方法，参数1位组件名，参数2组件配置对象</p>
        <p>3. 利用自定义标签，使用全局组件，组件名就是标签名</p>
    </div>
</template>
<template id="child1Temp">
    <div>
        <h3>这是 - {{title}}</h3>
        <p>1. 创建组件模板：在template选项中以字符形式存在；使用template内置组件，通过id名精准绑定</p>
        <p>2. 遵寻谁注册谁使用的原理，在注册子组件的配置对象内添加components选项，该选项为对象形式，key为组件名，value为组件配置对象</p>
        <p>3. 遵寻谁注册谁使用的原理，在注册到的组件内，利用自定义标签，使用局部组件，组件名就是标签名</p>
        <Global-com></Global-com>
    </div>
</template>
<script src="../vue.global.js"></script>
<script>
    const app = Vue.createApp({
        data(){
            return {
                title:"根组件"
            }
        },
        components:{
            Child1: {
                data(){
                    return {
                        title:"子组件"
                    }
                },
                template:"#child1Temp"
            }
        }
    })
    
    app.component("GlobalCom", {
        data(){
            return {
                title:"全局组件"
            }
        },
        template:"#globalTemp"
    });

    app.mount(".app");
</script>
</html>